Warning: mkdir(): No space left on device in /var/www/tg-me/post.php on line 37

Warning: file_put_contents(aCache/aDaily/post/devopsslib/--): Failed to open stream: No such file or directory in /var/www/tg-me/post.php on line 50
Библиотека девопса | DevOps, SRE, Sysadmin | Telegram Webview: devopsslib/3672 -
Telegram Group & Telegram Channel
🧑‍💻 Практический пример для Ansible

Основной элемент в Ansible — это playbook, который описывает последовательность задач для выполнения на удалённых серверах.

1️⃣ Определите цель плейбука

Чтобы написать хороший плейбук нужно определиться с его целью. Цель должна быть чётко сформулирована, например: установка пакетов, настройка сервисов, деплой приложения.

2️⃣ Определите основные переменные и хосты в inventory.ini

Inventory.ini — это стандартный файл инвентаризации в Ansible, где перечисляются хосты и группы хостов, на которых будут выполняться плейбуки.

[webservers]
web1.example.com
web2.example.com

[dbservers]
db1.example.com
db2.example.com

[backup_server]
backup-server.example.com

[all:vars]
ansible_user=admin
ansible_ssh_private_key_file=~/.ssh/id_rsa


3️⃣ Напишите сам плейбук

Затем можно написать сам плейбук. Как пример — плейбук, шифрует архив с помощью GPG и загружает на удалённый сервер хранения:
- name: Резервное копирование с шифрованием и загрузкой
hosts: localhost
vars:
backup_files:
- /etc/nginx/nginx.conf
- /var/www/html
backup_dest: /tmp/backup.tar.gz
gpg_recipient: "backup@example.com"
tasks:
- name: Создать архив с файлами
archive:
path: "{{ backup_files }}"
dest: "{{ backup_dest }}"

- name: Зашифровать архив GPG
command: "gpg --output {{ backup_dest }}.gpg --encrypt --recipient {{ gpg_recipient }} {{ backup_dest }}"
args:
removes: "{{ backup_dest }}"

- name: Копировать зашифрованный архив на удалённый сервер
copy:
src: "{{ backup_dest }}.gpg"
dest: "/backup/{{ inventory_hostname }}_backup.gpg"
delegate_to: backup_server


4️⃣ Вынесите переменные в отдельный файл

Это может быть небольшой файл, который можно переиспользовать:
backup_files:
- /etc/nginx/nginx.conf
- /var/www/html
backup_dest: /tmp/backup.tar.gz
gpg_recipient: "backup@example.com"


Бонус: плейбук для создания кастомного ASCII-арт баннера на удалённых серверах.
- name: Создать ASCII-арт баннер на сервере
hosts: all
become: yes
tasks:
- name: Установить figlet для генерации ASCII-арта
apt:
name: figlet
state: present
update_cache: yes

- name: Сгенерировать ASCII баннер и записать в файл /etc/motd
shell: echo "Welcome to $(hostname)" | figlet > /etc/motd
args:
creates: /etc/motd


Ansible можно использовать не только для настройки, но и для улучшения пользовательского опыта.

🐸Библиотека devops'a #буст
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/devopsslib/3672
Create:
Last Update:

🧑‍💻 Практический пример для Ansible

Основной элемент в Ansible — это playbook, который описывает последовательность задач для выполнения на удалённых серверах.

1️⃣ Определите цель плейбука

Чтобы написать хороший плейбук нужно определиться с его целью. Цель должна быть чётко сформулирована, например: установка пакетов, настройка сервисов, деплой приложения.

2️⃣ Определите основные переменные и хосты в inventory.ini

Inventory.ini — это стандартный файл инвентаризации в Ansible, где перечисляются хосты и группы хостов, на которых будут выполняться плейбуки.

[webservers]
web1.example.com
web2.example.com

[dbservers]
db1.example.com
db2.example.com

[backup_server]
backup-server.example.com

[all:vars]
ansible_user=admin
ansible_ssh_private_key_file=~/.ssh/id_rsa


3️⃣ Напишите сам плейбук

Затем можно написать сам плейбук. Как пример — плейбук, шифрует архив с помощью GPG и загружает на удалённый сервер хранения:
- name: Резервное копирование с шифрованием и загрузкой
hosts: localhost
vars:
backup_files:
- /etc/nginx/nginx.conf
- /var/www/html
backup_dest: /tmp/backup.tar.gz
gpg_recipient: "backup@example.com"
tasks:
- name: Создать архив с файлами
archive:
path: "{{ backup_files }}"
dest: "{{ backup_dest }}"

- name: Зашифровать архив GPG
command: "gpg --output {{ backup_dest }}.gpg --encrypt --recipient {{ gpg_recipient }} {{ backup_dest }}"
args:
removes: "{{ backup_dest }}"

- name: Копировать зашифрованный архив на удалённый сервер
copy:
src: "{{ backup_dest }}.gpg"
dest: "/backup/{{ inventory_hostname }}_backup.gpg"
delegate_to: backup_server


4️⃣ Вынесите переменные в отдельный файл

Это может быть небольшой файл, который можно переиспользовать:
backup_files:
- /etc/nginx/nginx.conf
- /var/www/html
backup_dest: /tmp/backup.tar.gz
gpg_recipient: "backup@example.com"


Бонус: плейбук для создания кастомного ASCII-арт баннера на удалённых серверах.
- name: Создать ASCII-арт баннер на сервере
hosts: all
become: yes
tasks:
- name: Установить figlet для генерации ASCII-арта
apt:
name: figlet
state: present
update_cache: yes

- name: Сгенерировать ASCII баннер и записать в файл /etc/motd
shell: echo "Welcome to $(hostname)" | figlet > /etc/motd
args:
creates: /etc/motd


Ansible можно использовать не только для настройки, но и для улучшения пользовательского опыта.

🐸Библиотека devops'a #буст

BY Библиотека девопса | DevOps, SRE, Sysadmin




Share with your friend now:
tg-me.com/devopsslib/3672

View MORE
Open in Telegram


Библиотека девопса | DevOps SRE Sysadmin Telegram | DID YOU KNOW?

Date: |

At a time when the Indian stock market is peaking and has rallied immensely compared to global markets, there are companies that have not performed in the last 10 years. These are definitely a minor portion of the market considering there are hundreds of stocks that have turned multibagger since 2020. What went wrong with these stocks? Reasons vary from corporate governance, sectoral weakness, company specific and so on. But the more important question is, are these stocks worth buying?

Tata Power whose core business is to generate, transmit and distribute electricity has made no money to investors in the last one decade. That is a big blunder considering it is one of the largest power generation companies in the country. One of the reasons is the company's huge debt levels which stood at ₹43,559 crore at the end of March 2021 compared to the company’s market capitalisation of ₹44,447 crore.

Библиотека девопса | DevOps SRE Sysadmin from pl


Telegram Библиотека девопса | DevOps, SRE, Sysadmin
FROM USA